Previous Book Contents Book Index Next

Inside Macintosh: QuickTime /
Chapter 2 - Movie Toolbox


Summary of the Movie Toolbox

C Summary

Constants

#define kFix1=    (0x00010000);  /* fixed point value equal to 1.0 */

#define gestaltQuickTime 'qtim'        /* Movie Toolbox availability */
#define MovieFileType 'MooV'           /* movie file type */
#define VideoMediaType 'vide'          /* video media type */
#define SoundMediaType 'soun'          /* sound media type */
#define MediaHandlerType 'mhlr'        /* media handler type */
#define DataHandlerType 'dhlr'         /* data handler type */
#define TextMediaType 'text'           /* text media type */
#define GenericMediaType 'gnrc'        /* base media handler type */

#define DoTheRightThing = 0L           /* indicates default flag settings 
                                           for Movie Toolbox functions */

/* sound volume values in trackVolume parameter of NewMovieTrack function */
#define kFullVolume  = 0x100           /* full, natural volume 
                                           (8.8 format) */
#define kNoVolume    =  0              /* no volume */
/* 
   constants for whichMediaTypes parameter of GetMovieNextInterestingTime 
   function 
*/
#define VisualMediaCharacteristic 'eyes'/* visual media */
#define AudioMediaCharacteristic 'ears' /* audio media */
enum 
{
/* media quality settings in quality parameter of SetMediaQuality function */ 
   mediaQualityDraft    = 0x0000,      /* lowest quality level */ 
   mediaQualityNormal   = 0x0040,      /* acceptable quality level */
   mediaQualityBetter   = 0x0080,      /* better quality level */
   mediaQualityBest     = 0x00C0    /* best quality level */
};
enum 
{
/* 
   values for callBackFlags field of QuickTime callback header structure used
   by clock components to communicate scheduling information about a
   callback event to the Movie Toolbox 
*/
   qtcbNeedsRateChanges       = 1,  /* rate changes */
   qtcbNeedsTimeChanges       = 2,  /* time changes */
   qtcbNeedsStartStopChanges  = 4   /* time base changes at start & 
                                        stop times */
};
enum 
{
/* 
   dialog items to include in dialog box definition for use with
   SFPGetFilePreview function 
*/
   sfpItemPreviewAreaUser        = 11,    /* user preview area */
   sfpItemPreviewStaticText      = 12,    /* static text preview */
   sfpItemPreviewDividerUser     = 13,    /* user divider preview */
   sfpItemCreatePreviewButton    = 14,    /* create preview button */
   sfpItemShowPreviewButton      = 15     /* show preview button */
};
enum 
{                 
   movieInDataForkResID = -1  /* magic resource ID */
};
enum 
{
/* flags for LoadIntoRAM functions */
   keepInRam               = 1<<0,     /* load and make so data cannot be
                                          purged */
   unkeepInRam             = 1<<1,     /* mark data so it can be purged */
   flushFromRam            = 1<<2,     /* empty handles and purge data from 
                                          memory */
   loadForwardTrackEdits   = 1<<3,     /* load only data around
                                          track edits--play movie forward */
   loadBackwardTrackEdits  = 1<<4      /* load only data around edits--
                                          play movie in reverse */
};
enum 
{
/* flag for PasteHandleIntoMovie function */
   pasteInParallel = 1  /* changes function to take contents and type of
                            handle and add to movie */
};
/* text description display flags used in AddTextSample and AddTESample */
enum 
{
   dfDontDisplay        = 1<<0,     /* don't display the text */
   dfDontAutoScale      = 1<<1,     /* don't scale text as track bounds grows 
                                       or shrinks */
   dfClipToTextBox      = 1<<2,     /* clip update to the text box */
   dfUseMovieBGColor    = 1<<3,     /* set text background to movie's
                                       background color */
   dfShrinkTextBoxToFit = 1<<4,     /* compute minimum box to fit the 
                                       sample */
   dfScrollIn           = 1<<5,     /* scroll text in until last of text is 
                                       in view */
   dfScrollOut          = 1<<6      /* scroll text out until last of text is
                                       gone (if dfScrollIn is also set,
                                       scroll in then out */
   dfHorizScroll        = 1<<7,     /* scroll text horizontally--otherwise,
                                       it's vertical */
   dfReverseScroll      = 1<<8      /* vertically scroll down and
                                       horizontally scroll
                                       up--justification-dependent */
};
/* find flags for FindNextText function */
   findTextEdgeOK          = 1<<0,  /* OK to find text at specified 
                                        sample time */
   findTextCaseSensitive   = 1<<1,  /* case-sensitive search */
   findTextReverseSearch   = 1<<2,  /* search from sampleTime backward */
   findTextWraparound      = 1<<3,  /* wrap search when beginning or end 
                                        of movie is reached */
/* return display flags for application-defined text function */
enum 
{
   txtProcDefaultDisplay   = 0,     /* use the media's default settings */
   txtProcDontDisplay      = 1,     /* don't display the text */
   txtProcDoDisplay        = 2      /* display the text */
};
enum
{
hintsScrubMode             = 1<<0,  /* toolbox can display key frames when
                                        movie is repositioned */
hintsAllowInterlace        = 1<<6,  /* use interlace option for compressor
                                        components */
hintsUseSoundInterp        = 1<<7   /* turn on sound interpolation */
};
typedef unsigned long playHintsEnum;

Data Types

typedef MovieRecord *Movie;         /* movie identifier */
typedef TrackRecord *Track;         /* track identifer */
typedef MediaRecord *Media;         /* media identifier */
typedef UserDataRecord *UserData;   /* user data list identifier */
typedef TrackEditStateRecord *TrackEditState;
                                    /* track edit state identifier */
typedef MovieEditStateRecord *MovieEditState;
                                    /* movie edit state identifier */
typedef long TimeValue;             /* time value field in time structure */
typedef long TimeScale;             /* time scale field in time structure */
typedef TimeBaseRecord *TimeBase;   /* time base identifier */
typedef CallBackRecord *QTCallBack; /* callback identifier */

typedef Int64 CompTimeValue;

struct Int64 
{
      long hi;    /* high-order 32 bits of value field in time structure */
      long lo;    /* low-order 32 bits of value field in time structure */
};
typedef struct Int64 Int64;
struct TimeRecord 
{
      CompTimeValue  value;/* time value as duration or absolute */
      TimeScale      scale;/* time scale as unit of time & number of units */
      TimeBase       base; /* reference to the time base */
};
typedef struct TimeRecord TimeRecord;
/* All sample descriptions start with this header. */
struct SampleDescription 
{
      long     descSize;         /* total size in bytes of this structure */
      long     dataFormat;       /* format of the sample data */
      long     resvd1;           /* reserved--set to 0 */
      short    resvd2;           /* reserved--set to 0 */
      short    dataRefIndex;     /* reserved--set to 1 */
};
typedef struct SampleDescription SampleDescription;
typedef SampleDescription *SampleDescriptionPtr, **SampleDescriptionHandle;

struct SoundDescription 
{
      long     descSize;   /* total size in bytes of this structure */
      long     dataFormat; /* format of the sound data */
      long     resvd1;     /* reserved--set to 0 */
      short    resvd2;     /* reserved--set to 0 */
      short    dataRefIndex;
                           /* reserved--set to 1 */
      short    version;    /* which version is this data? */
      short    revlevel;   /* which version of that codec did this? */
      long     vendor;     /* which codec compressed this data? */
      short    numChannels;/* number of sound channels used by sample */
      short    sampleSize; /* number of bits in each sound sample */
      short    compressionID; 
                           /* sound compression used--set to 0 if none */
      short    packetSize; /* packet size for compression--set to 0 if 
                               no compression */
      Fixed    sampleRate; /* rate at which sound samples were obtained */
};
typedef struct SoundDescription SoundDescription;
typedef SoundDescription *SoundDescriptionPtr, **SoundDescriptionHandle;
typedef struct TextDescription 
{
   long     size;          /* total size of this text description
                               structure */
   long     type;          /* type of data in this structure ('text') */
   long     resvd1;        /* reserved for use by Apple--set to 0 */
   short    resvd2;        /* reserved for use by Apple--set to 0 */
   short    dataRefIndex;  /* index to data references */
   long     displayFlags;  /* display flags for text */
   long     textJustification;
                           /* text justification flags */
   RGBColor bgColor;       /* background color */
   Rect     defaultTextBox;/* location of the text within track bounds */
   ScrpSTElement defaultStyle;
                           /* default style (TextEdit structure) */
} TextDescription, *TextDescriptionPtr, **TextDescriptionHandle;
typedef struct TextDescription TextDescription;
typedef TextDescription *TextDescriptionPtr, **TextDescriptionHandle;
/* pointer to application-defined movie progress function */
typedef pascal OSErr  (*MovieProgressProcPtr) (Movie theMovie, short message,
                        short whatOperation, Fixed percentDone, long refcon);

/* pointer to application-defined cover function */
typedef pascal OSErr (*MovieRgnCoverProc)(Movie theMovie, 
                      RgnHandle changedRgn, long refcon);  

typedef Handle MediaInformationHandle;  /* data returned by media handler */
typedef ComponentInstance MediaHandler; /* media handler */
typedef Component MediaHandlerComponent; /* media handler component */
typedef ComponentInstance DataHandler;  /* data handler */
typedef Component DataHandlerComponent; /* data handler component */
typedef ComponentResult HandlerError;   /* error handler */
typedef ComponentInstance MovieController;
                                        /* movie controller */

/* pointer to application-defined error-notification function */
typedef pascal void (*ErrorProcPtr)(OSErr theErr, long refcon);        
/* pointer to application-defined movie preview callout function */
typedef pascal Boolean (*MoviePreviewCallOutProc)(long refcon);   
enum 
{
/* control flags for timeBaseFlags parameter of SetTimeBaseFlags function */
   loopTimeBase               = 1,  /* whether time base loops */
   palindromeLoopTimeBase     = 2   /* whether time base loops in palindrome
                                        fashion */
};
typedef unsigned long TimeBaseFlags;   /* control flags for time base */

/* pointer to application-defined callback function */
typedef pascal void (*QTCallBackProc)(QTCallBack cb, long refcon);

struct QTCallBackHeader 
{
      long     callBackFlags;    /* clock component scheduling data flags */
      long     reserved1;        /* reserved for use by Apple */
      char     qtPrivate[40];    /* reserved for use by Apple */
};

struct MatrixRecord 
{
      Fixed matrix[3][3];
};
typedef struct FixedPoint FixedPoint;
struct FixedPoint 
{
      Fixed x;    /* point's x coordinate as fixed-point number */
      Fixed y;    /* point's y coordinate as fixed-pont number */
};
typedef struct MatrixRecord  MatrixRecord;
typedef MatrixRecord  *MatrixRecordPtr;/* pointer to matrix structure */
struct FixedRect 
{
      Fixed left;    /* x coordinate of rectangle's upper-left corner */
      Fixed top;     /* y coordinate of rectangle's upper-left corner */
      Fixed right;   /* x coordinate of rectangle's lower-right corner */
      Fixed bottom;  /* y coordinate of rectangle's lower-right corner */
};
typedef struct FixedRect FixedRect;
enum 
{
/* progress function messages */
   movieProgressOpen          = 0,  /* indicates start of a long operation */
   movieProgressUpdatePercent = 1,  /* passes completion data to function */
   movieProgressClose         = 2   /* indicates end of a long operation */
};
typedef unsigned char movieProgressMessages;

enum 
{
/*
   progress function operations that tell which function your application 
   has called 
*/
   progressOpFlatten                   = 1,  /* FlattenMovie or
                                                 FlattenMovieData */
   progressOpInsertTrackSegment        = 2,  /* InsertTrackSegment */
   progressOpInsertMovieSegment        = 3,  /* InsertMovieSegment */
   progressOpPaste                     = 4,  /* PasteMovieSelection */
   progressOpAddMovieSelection         = 5,  /* AddMovieSelection */
   progressOpCopy                      = 6,  /* CopyMovieSelection */
   progressOpCut                       = 7,  /* CutMovieSelection */
   progressOpLoadMovieIntoRam          = 8,  /* LoadMovieIntoRam */
   progressOpLoadTrackIntoRam          = 9,  /* LoadTrackIntoRam */
   progressOpLoadMediaIntoRam          = 10, /* LoadMediaIntoRam */
   progressOpImportMovie               = 11, /* ConvertFileToMovieFile */
   progressOpExportMOvie               = 12  /* ConvertMovieFile */
};
typedef unsigned char movieProgressOperations;
enum 
{
/* NewMovie function flags */
   newMovieActive                      = 1<<0,     /* new movie is or 
                                                       is not active */
   newMovieDontResolveDataRefs         = 1<<1,     /* data reference 
                                                       resolution level */
   newMovieDontAskUnresolvedDataRefs   = 1<<2,     /* is user asked to locate
                                                       files? */
   newMovieDontAutoAlternates          = 1<<3      /* are enabled tracks
                                                       selected from 
                                                       alternate groups? */
};
typedef unsigned char newMovieFlagsEnum;
/* track usage flags in SetTrackUsage function */
enum 
{
   trackUsageInMovie       = 1<<1,  /* track is used in movie */
   trackUsageInPreview     = 1<<2,  /* track is used in preview */
   trackUsageInPoster      = 1<<3   /* track is used in poster */
};
typedef unsigned char trackUsageEnum;

/* media sample flags in AddMediaSample function */
enum 
{
   mediaSampleNotSync      = 1<<0,  /* sample to be added is not a 
                                        sync sample */
   mediaSampleShadowSync   = 1<<1   /* sample is a shadow sync sample */
};
typedef unsigned char mediaSampleFlagsEnum;
enum 
{
/*
   interesting times flags in interestingTimeFlags parameter of 
   GetMovieNextInterestingTime function 
*/
   nextTimeMediaSample  = 1<<0,  /* finds next sample in movie's media */
   nextTimeMediaEdit    = 1<<1,  /* finds next sample group in movie's 
                                    media */
   nextTimeTrackEdit    = 1<<2,  /* finds sample for next entry in edit 
                                    list */
   nextTimeSyncSample   = 1<<3,  /* finds next sync sample in movie's 
                                    media */
   nextTimeEdgeOK       = 1<<14, 
                                 /* to receive element data at specified
                                    time */
   nextTimeIgnoreActiveSegment 
                        = 1<<15  
                                 /* look outside active segment for 
                                    samples */
};
typedef unsigned short nextTimeFlagsEnum;
enum 
{
/* movie-creation flags from CreateMovieFile function */
   createMovieFileDeleteCurFile     = 1L<<31,   /* delete existing file? */
   createMovieFileDontCreateMovie   = 1L<<30,   /* is new movie created? */
   createMovieFileDontOpenFile      = 1L<<29    /* is new movie file 
                                                   opened? */
};
typedef unsigned long createMovieFileFlagsEnum;

/* movie-flattening flags from FlattenFlags function */
enum 
{
   flattenAddMovieToDataFork     = 1L<<0,/* movie placed in data fork */
   flattenActiveTracksOnly       = 1L<<2,/* enabled movie tracks added */
   flattenDontInterleaveFlatten  = 1L<<3 /* disable data storage 
                                             optimizations */
};
typedef unsigned long movieFlattenFlagsEnum;

enum 
{
/* movie scrap flags from PutMovieOnScrap function */
   movieScrapDontZeroScrap= 1<<0,/* is scrap cleared before movie is 
                                     put on scrap? */
   movieScrapOnlyPutMovie = 1<<1 /* are other items placed on scrap along
                                     with movie? */
};
typedef unsigned char movieScrapFlagsEnum;
enum 
{
/* 
   callback flags from CallMeWhen function specify when callback 
   should be called 
*/
   triggerTimeFwd       = 0x0001, /* only when time is at positive rate */
   triggerTimeBwd       = 0x0002, /* only when time is at negative rate */
   triggerTimeEither    = 0x0003, /* at specified time without regard 
                                     to rate */
   triggerRateLT        = 0x0004, /* whenever rate changes */
   triggerRateGT        = 0x0008, /* when changed rate greater than param2 */
   triggerRateEqual     = 0x0010, /* when changed rate equal to param2 */
   triggerRateLTE       = triggerRateLT | triggerRateEqual,
                                  /* when rate less than or equal to 
                                     param2 */
   triggerRateGTE       = triggerRateGT | triggerRateEqual,
                                 /* when rate greater than or equal to 
                                    param2 */
   triggerRateNotEqual  = triggerRateGT | triggerRateEqual | triggerRateLT,
                                 /* when rate is not equal to param2 */
   triggerRateChange    = 0      /* whenever rate changes */
   triggerAtStart       = 0x0001,
                                 /* at startup time */
   triggerAtStop        = 0x0002 /* at stop time */
};
typedef unsigned short QTCallBackFlags;
enum 
{
/*
   flags returned by GetTimeBaseStatus function specify where time value in 
   time structure lies 
*/
   timeBaseBeforeStartTime    = 1,  /* before start time of time base */
   timeBaseAfterStopTime      = 2   /* after stop time of time base */
};
typedef unsigned long TimeBaseStatus;
enum 
{
/* 
   values for cbType parameter of NewCallBack function specify when event 
   can be invoked 
*/
   callBackAtTime       = 1,        /* at a specified time */
   callBackAtRate       = 2,        /* time base rate at specified value */
   callBackAtTimeJump   = 3,        /* time value jumps unexpectedly */
   callBackAtExtremes   = 4         /* time value at start time, stop time,
                                        or either */
   callBackAtInterrupt  = 0x8000    /* at interrupt time */
};
typedef unsigned short QTCallBackType;
enum 
{
   identityMatrixType         = 0x00,  /* identity matrix */
   translateMatrixType        = 0x01,  /* translation operation */
   scaleTranslateMatrixType   = 0x03,  /* translation & scaling operation */
   linearMatrixType           = 0x04,  /* rotation, skew, or shear 
                                           operation */
   linearTranslateMatrixType  = 0x05,  /* translation & rotation, skew, 
                                           or shear operation */
   perspectiveMatrixType      = 0x06   /* perspective (nonlinear) 
                                           operation */
};
typedef unsigned short MatrixFlags;

enum 
{
/*
   values for the dataRefAttributes parameter of the GetMediaDataRef
   function 
*/
   dataRefSelfReference  = 1<<0,/* is reference to movie resource's 
                                    data file? */
   dataRefWasNotResolved = 1<<1/* did Movie Toolbox resolve reference? */
};
typedef unsigned long dataRefAttributesFlags;
enum 
{
/* flags for SetMoviePlayHints and SetMediaPlayHints functions */
   hintsScrubMode       = 1<<0,  /* mask == && (if flags == scrub on, 
                                    flags != scrub off) */ 
   hintsAllowInterlace  = 1<<6,
   hintsUseSoundInterp  = 1<<7
} ;
typedef unsigned long playHintsEnum;
enum 
{
   mediaHandlerFlagGenericClient = 1   /* component flag--should be set for
                                          all media handler components that
                                          make use of generic media 
                                          handler */
};
typedef unsigned long mediaHandlerFlagsEnum;

Functions for Getting and Playing Movies

Initializing the Movie Toolbox

pascal OSErr EnterMovies	(void);
pascal void ExitMovies 		(void);

Error Functions

pascal OSErr GetMoviesError
		(void);
pascal OSErr GetMoviesStickyError
		(void);
pascal void ClearMoviesStickyError
		(void);
pascal void SetMoviesErrorProc
		(ErrorProcPtr errProc, long refcon);

Movie Functions

pascal OSErr NewMovieFromFile
			(Movie *theMovie, short resRefNum, 
			short *resId, StringPtr resName, 
			short newMovieFlags, 
			Boolean *dataRefWasChanged);
pascal OSErr NewMovieFromHandle
			(Movie *theMovie, Handle h, 
			short newMovieFlags, 
			Boolean *dataRefWasChanged);
pascal Movie NewMovie	(long newMovieFlags);
pascal OSErr ConvertFileToMovieFile
			(const FSSpec *inputFile, 
			const FSSpec *outputFile, OSType creator, ScriptCode scriptTag, short *resID, 
			long flags, ComponentInstance userComp,	MovieProgressProcPtr proc, long refcon);
pascal OSErr ConvertMovieToFile
			(Movie theMovie, Track onlyTrack, 
			const FSSpec *outputFile, OSType fileType, OSType creator, ScriptCode scriptTag, 
			short *resID, long flags,	
			ComponentInstance userComp);
pascal void DisposeMovie(Movie theMovie);
pascal OSErr CreateMovieFile
			(const FSSpec *fileSpec, OSType creator, ScriptCode scriptTag, 
long createMovieFileFlags, short *resRefNum, Movie *newMovie);
pascal OSErr OpenMovieFile(const FSSpec *fileSpec, short *resRefNum, 
			char perms);
pascal OSErr CloseMovieFile
			(short resRefNum);
pascal OSErr DeleteMovieFile
			(const FSSpec *fileSpec);

Saving Movies

pascal Boolean HasMovieChanged
			(Movie theMovie);
pascal void ClearMovieChanged
			(Movie theMovie);
pascal OSErr AddMovieResource
			(Movie theMovie, short resRefNum, short *resId, 
			const StringPtr resName);
pascal OSErr UpdateMovieResource
			(Movie theMovie, short resRefNum, short resId, 
			const StringPtr resName);
pascal OSErr RemoveMovieResource
			(short resRefNum, short resId);
pascal OSErr PutMovieIntoHandle
			(Movie theMovie, Handle publicMovie);
pascal void FlattenMovie
			(Movie theMovie, long movieFlattenFlags, 
			const FSSpec *theFile, 
			OSType creator, ScriptCode scriptTag,
			long createMovieFileFlags, short *resId,
			const StringPtr resName);
pascal Movie FlattenMovieData
			(Movie theMovie, long movieFlattenFlags, 
			const FSSpec *theFile, 
			OSType creator, ScriptCode scriptTag,
			long createMovieFileFlags);
pascal OSErr NewMovieFromDataFork
			(Movie *theMovie, short fRefNum, 
			long fileOffset, short newMovieFlags, 
			Boolean *dataRefWasChanged);
pascal OSErr PutMovieIntoDataFork
			(Movie theMovie, short fRefNum, long offset, long maxSize);

Controlling Movie Playback

pascal void StartMovie	(Movie theMovie);
pascal void StopMovie	(Movie theMovie);
pascal void GoToBeginningOfMovie
			(Movie theMovie);
pascal void GoToEndOfMovie	(Movie theMovie);

Movie Posters and Movie Previews

pascal void SetTrackUsage	(Track theTrack, long usage);
pascal long GetTrackUsage	(Track theTrack);
pascal void ShowMoviePoster
			(Movie theMovie);
pascal void SetPosterBox	(Movie theMovie, const Rect *boxRect);
pascal void GetPosterBox	(Movie theMovie, Rect *boxRect);
pascal void SetMoviePosterTime
			(Movie theMovie, TimeValue posterTime);
pascal TimeValue GetMoviePosterTime
			(Movie theMovie);
pascal void PlayMoviePreview
			(Movie theMovie, 
			MoviePreviewCallOutProc callOutProc, 
			long refcon);
pascal void SetMoviePreviewMode
			(Movie theMovie, Boolean usePreview);
pascal Boolean GetMoviePreviewMode
			(Movie theMovie);
pascal void SetMoviePreviewTime
			(Movie theMovie, TimeValue previewTime, 
			TimeValue previewDuration);
pascal void GetMoviePreviewTime
			(Movie theMovie, TimeValue *previewTime, 
			TimeValue *previewDuration);

Movies and Your Event Loop

pascal void MoviesTask	(Movie theMovie, long maxMilliSecToUse);
pascal Boolean IsMovieDone	(Movie theMovie);
pascal OSErr UpdateMovie	(Movie theMovie);
pascal Boolean PtInMovie	(Movie theMovie, Point pt);
pascal Boolean PtInTrack	(Track theTrack, Point pt);
pascal ComponentResult GetMovieStatus
			(Movie theMovie, Track *firstProblemTrack);
pascal ComponentResult GetTrackStatus
			(Track theTrack);

Preferred Movie Settings

pascal void SetMoviePreferredRate
			(Movie theMovie, Fixed rate);
pascal Fixed GetMoviePreferredRate
			(Movie theMovie);
pascal void SetMoviePreferredVolume
			(Movie theMovie, short volume);
pascal short GetMoviePreferredVolume
			(Movie theMovie);

Enhancing Movie Playback Performance

pascal OSErr PrerollMovie	(Movie theMovie, TimeValue time, Fixed Rate);
pascal void SetMovieActiveSegment
			(Movie theMovie, TimeValue startTime, 
			TimeValue duration);
pascal void GetMovieActiveSegment
			(Movie theMovie, TimeValue *startTime, 
			TimeValue *duration);
pascal void SetMoviePlayHints
			(Movie theMovie, long flags, long flagsMask); 
pascal void SetMediaPlayHints
			(Media theMedia, long flags, long flagsMask); 
pascal OSErr LoadMovieIntoRam
			(Movie theMovie, TimeValue time, 
			TimeValue duration, long flags);
pascal OSErr LoadTrackIntoRam
			(Track theTrack, TimeValue time, 
			TimeValue duration, long flags);
pascal OSErr LoadMediaIntoRam
			(Media theMedia, TimeValue time, 
			TimeValue duration, long flags);
pascal OSErr SetMediaShadowSync
			(Media theMedia, long frameDiffSampleNum
			long syncSampleNum);
pascal OSErr GetMediaShadowSync
			(Media theMedia, long frameDiffSampleNum
			long *syncSampleNum);

Disabling Movies and Tracks

pascal void SetMovieActive	(Movie theMovie, Boolean active);
pascal Boolean GetMovieActive
			(Movie theMovie);
pascal void SetTrackEnabled
			(Track theTrack, Boolean isEnabled);
pascal Boolean GetTrackEnabled
			(Track theTrack);

Generating Pictures From Movies

pascal PicHandle GetMoviePict
			(Movie theMovie, TimeValue time);
pascal PicHandle GetMoviePosterPict
			(Movie theMovie);
pascal PicHandle GetTrackPict
			(Track theTrack, TimeValue time);

Creating Tracks and Media Structures

pascal Track NewMovieTrack	(Movie theMovie, Fixed width, Fixed height,
			short trackVolume);
pascal void DisposeMovieTrack
			(Track theTrack);
pascal Media NewTrackMedia	(Track theTrack, OSType mediaType, 
			TimeScale timeScale, Handle dataRef, 
			OSType dataRefType);
pascal void DisposeTrackMedia
			(Media theMedia);

Working With Progress and Cover Functions

pascal void SetMovieProgressProc
			(Movie theMovie, MovieProgressProcPtr p, long refcon);
pascal void SetMovieCoverProcs
			(Movie theMovie, MovieRgnCoverProc uncoverProc, MovieRgnCoverProc coverProc, long refcon);

Functions That Modify Movie Properties

Working With Movie Spatial Characteristics

pascal void SetMovieGWorld	(Movie theMovie, CGrafPtr port, GDHandle gdh);
pascal void GetMovieGWorld	(Movie theMovie, CGrafPtr *port, GDHandle *gdh);
pascal void SetMovieBox	(Movie theMovie, const Rect *boxRect);
pascal void GetMovieBox	(Movie theMovie, Rect *boxRect);
pascal RgnHandle GetMovieDisplayBoundsRgn
			(Movie theMovie);
pascal RgnHandle GetMovieSegmentDisplayBoundsRgn
			(Movie theMovie, TimeValue time, 
			TimeValue duration);
pascal void SetMovieDisplayClipRgn
			(Movie theMovie, RgnHandle theClip);
pascal RgnHandle GetMovieDisplayClipRgn
			(Movie theMovie);
pascal RgnHandle GetTrackDisplayBoundsRgn
			(Track theTrack);
pascal RgnHandle GetTrackSegmentDisplayBoundsRgn
			(Track theTrack, TimeValue time, TimeValue duration);
pascal void SetTrackLayer	(Track theTrack, short layer);
pascal short GetTrackLayer	(Track theTrack);
pascal void SetMovieMatrix	(Movie theMovie, const MatrixRecord *matrix);
pascal void GetMovieMatrix	(Movie theMovie, MatrixRecord *matrix);
pascal RgnHandle GetMovieBoundsRgn
			(Movie theMovie);
pascal RgnHandle GetTrackMovieBoundsRgn
			(Track theTrack);
pascal void SetMovieClipRgn
			(Movie theMovie, RgnHandle theClip);
pascal RgnHandle GetMovieClipRgn
			(Movie theMovie);
pascal void SetTrackMatrix	(Track theTrack, const MatrixRecord *matrix);
pascal void GetTrackMatrix	(Track theTrack, MatrixRecord *matrix);
pascal RgnHandle GetTrackBoundsRgn
			(Track theTrack);
pascal void SetTrackDimensions
			(Track theTrack, Fixed width, Fixed height);
pascal void GetTrackDimensions
			(Track theTrack, Fixed *width, Fixed *height);
pascal void SetTrackClipRgn
			(Track theTrack, RgnHandle theClip);
pascal RgnHandle GetTrackClipRgn
			(Track theTrack);
pascal void SetTrackMatte	(Track theTrack, PixMapHandle theMatte);
pascal PixMapHandle GetTrackMatte
			(Track theTrack);
pascal void DisposeMatte	(PixMapHandle theMatte);

Working With Sound Volume

pascal void SetMovieVolume	(Movie theMovie, short volume);
pascal short GetMovieVolume
			(Movie theMovie);
pascal void SetTrackVolume	(Track theTrack, short volume);
pascal short GetTrackVolume
			(Track theTrack);

Working With Movie Time

pascal TimeValue GetMovieDuration
			(Movie theMovie);
pascal void SetMovieTimeValue
			(Movie theMovie, TimeValue newtime);
pascal void SetMovieTime	(Movie theMovie, const TimeRecord *newtime);
pascal TimeValue GetMovieTime
			(Movie theMovie, TimeRecord *currentTime);
pascal void SetMovieRate	(Movie theMovie, Fixed rate);
pascal Fixed GetMovieRate	(Movie theMovie);
pascal void SetMovieTimeScale
			(Movie theMovie, TimeScale timeScale);
pascal TimeScale GetMovieTimeScale
			(Movie theMovie);
pascal TimeBase GetMovieTimeBase
			(Movie theMovie);

Working With Track Time

pascal TimeValue GetTrackDuration
			(Track theTrack);
pascal void SetTrackOffset	(Track theTrack, TimeValue movieOffsetTime);
pascal TimeValue GetTrackOffset
			(Track theTrack);
pascal TimeValue TrackTimeToMediaTime
			(TimeValue value, Track theTrack);

Working With Media Time

pascal TimeValue GetMediaDuration
			(Media theMedia);
pascal void SetMediaTimeScale
			(Media theMedia, TimeScale timeScale);
pascal TimeScale GetMediaTimeScale
			(Media theMedia);

Finding Interesting Times

pascal void GetMovieNextInterestingTime
			(Movie theMovie, short interestingTimeFlags, 
			short numMediaTypes, const OSType *whichMediaTypes, TimeValue time, Fixed rate, TimeValue *interestingTime, 
			TimeValue *interestingDuration);
pascal void GetTrackNextInterestingTime
			(Track theTrack, short interestingTimeFlags,
			TimeValue time, Fixed rate, 
			TimeValue *interestingTime,
			TimeValue *interestingDuration);
pascal void GetMediaNextInterestingTime
			(Media theMedia, short interestingTimeFlags,
			TimeValue time, Fixed rate,
			TimeValue *interestingTime,
			TimeValue *interestingDuration);

Locating a Movie's Tracks and Media Structures

pascal long GetMovieTrackCount
			(Movie theMovie);
pascal Track GetMovieIndTrack
			(Movie theMovie, long index);
pascal Track GetMovieTrack	(Movie theMovie, long trackID);
pascal long GetTrackID	(Track theTrack);
pascal Movie GetTrackMovie	(Track theTrack);
pascal Media GetTrackMedia	(Track theTrack);
pascal Track GetMediaTrack	(Media theMedia);

Working With Alternate Tracks

pascal void SetMovieLanguage	(Movie theMovie, long language);
pascal void SelectMovieAlternates
			(Movie theMovie);
pascal void SetAutoTrackAlternatesEnabled
			(Movie theMovie, Boolean enable);
pascal void SetTrackAlternate
			(Track theTrack, Track alternateT);
pascal Track GetTrackAlternate
			(Track theTrack);
pascal void SetMediaLanguage
			(Media theMedia, short language);
pascal short GetMediaLanguage
			(Media theMedia);
pascal void SetMediaQuality
			(Media theMedia, short quality);
pascal short GetMediaQuality
			(Media theMedia);

Working With Data References

pascal OSErr AddMediaDataRef
			(Media theMedia, short *index, Handle dataRef, 
			OSType dataRefType);
pascal OSErr SetMediaDataRef
			(Media theMedia, short index, Handle dataRef, OSType dataRefType);
pascal OSErr GetMediaDataRefCount
			(Media theMedia, short *count); 
pascal OSErr GetMediaDataRef
			(Media theMedia, short index, Handle *dataRef,
			OSType *dataRefType, long *dataRefAttributes);

Determining Movie Creation and Modification Time

pascal unsigned long GetMovieCreationTime
			(Movie theMovie);
pascal unsigned long GetMovieModificationTime
			(Movie theMovie);
pascal unsigned long GetTrackCreationTime
			(Track theTrack);
pascal unsigned long GetTrackModificationTime
			(Track theTrack);
pascal unsigned long GetMediaCreationTime
			(Media theMedia);
pascal unsigned long GetMediaModificationTime
			(Media theMedia); 

Working With Media Samples

pascal long GetMovieDataSize
			(Movie theMovie, TimeValue startTime, 
			TimeValue duration);
pascal long GetTrackDataSize
			(Track theTrack, TimeValue startTime, 
			TimeValue duration);
pascal long GetMediaDataSize
			(Media theMedia, TimeValue startTime,
			TimeValue duration);
pascal long GetMediaSampleCount
			(Media theMedia);
pascal long GetMediaSampleDescriptionCount
			(Media theMedia); 
pascal void GetMediaSampleDescription
			(Media theMedia, long index, 
			SampleDescriptionHandle descH); 
pascal OSErr SetMediaSampleDescription
			(Media theMedia, long index, SampleDescriptionHandle descH);
pascal void MediaTimeToSampleNum
			(Media theMedia, TimeValue time, 
			long *sampleNum, TimeValue *sampleTime, 
			TimeValue *sampleDuration);
pascal void SampleNumToMediaTime
			(Media theMedia, long logicalSampleNum, 
			TimeValue *sampleTime, 
			TimeValue *sampleDuration);

Working With Movie User Data

pascal UserData GetMovieUserData
			(Movie theMovie);
pascal UserData GetTrackUserData
			(Track theTrack);
pascal UserData GetMediaUserData
			(Media theMedia);
pascal long GetNextUserDataType
			(UserData theUserData, OSType udType);
pascal short CountUserDataType
			(UserData theUserData, OSType udType);
pascal OSErr AddUserData	(UserData theUserData, Handle data, 
			OSType udType);
pascal OSErr GetUserData	(UserData theUserData, Handle data, 
			OSType udType,long index);
pascal OSErr RemoveUserData
			(UserData theUserData, OSType udType, 
			long index); 
pascal OSErr AddUserDataText
			(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag);
pascal OSErr GetUserDataText
			(UserData theUserData, Handle data, 
			OSType udType, long index, short itlRegionTag);
pascal OSErr RemoveUserDataText
			(UserData theUserData, OSType udType, 
			long index, short itlRegionTag);
pascal OSErr SetUserDataItem
			(UserData theUserData, void *data, long size, OSType udType, long index);
pascal OSErr GetUserDataItem
			(UserData theUserData, void *data, long size, OSType udType, long index);
pascal OSErr NewUserData	(UserData *theUserData);
pascal OSErr DisposeUserData
			(UserData theUserData);
pascal OSErr PutUserDataIntoHandle
			(UserData theUserData, Handle h);
pascal OSErr NewUserDataFromHandle
			(Handle h, UserData *theUserData);

Functions for Editing Movies

Editing Movies

pascal OSErr PutMovieOnScrap
			(Movie theMovie, long movieScrapFlags);
pascal Movie NewMovieFromScrap
			(long newMovieFlags);
pascal void SetMovieSelection
			(Movie theMovie, TimeValue selectionTime, 
			TimeValue selectionDuration);
pascal void GetMovieSelection
			(Movie theMovie, TimeValue *selectionTime,
			TimeValue *selectionDuration);
pascal Movie CutMovieSelection
			(Movie theMovie); 
pascal Movie CopyMovieSelection
			(Movie theMovie); 
pascal void PasteMovieSelection
			(Movie theMovie, Movie src); 
pascal void AddMovieSelection
			(Movie theMovie, Movie src); 
pascal void ClearMovieSelection
			(Movie theMovie);
pascal Component IsScrapMovie
			(Track targetTrack);
pascal OSErr PasteHandleIntoMovie
			(Handle h, OSType handleType, Movie theMovie, long flags, ComponentInstance userComp); 
pascal OSErr PutMovieIntoTypedHandle
			(Movie theMovie, Track targetTrack, 
			OSType handleType, Handle publicMovie,
			TimeValue start, TimeValue dur, 
			long flags, ComponentInstance userComp);

Undo for Movies

pascal MovieEditState NewMovieEditState
			(Movie theMovie); 
pascal OSErr UseMovieEditState
			(Movie theMovie, MovieEditState toState); 
pascal OSErr DisposeMovieEditState
			(MovieEditState state); 

Low-Level Movie-Editing Functions

pascal OSErr InsertMovieSegment
			(Movie srcMovie, Movie dstMovie,
			TimeValue srcIn, 
			TimeValue srcDuration, TimeValue dstIn);
pascal OSErr InsertEmptyMovieSegment
			(Movie dstMovie, TimeValue dstIn,
			TimeValue dstDuration);
pascal OSErr DeleteMovieSegment
			(Movie theMovie, TimeValue in, TimeValue duration);
pascal OSErr ScaleMovieSegment
			(Movie theMovie, TimeValue in, 
			TimeValue oldDuration, TimeValue newDuration);
pascal OSErr CopyMovieSettings
			(Movie srcMovie, Movie dstMovie);

Editing Tracks

pascal OSErr InsertTrackSegment
			(Track srcTrack, Track dstTrack, 
			TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn);
pascal OSErr InsertEmptyTrackSegment
			(Track dstTrack, TimeValue dstIn, 
			TimeValue dstDuration);
pascal OSErr InsertMediaIntoTrack
			(Track theTrack, TimeValue trackStart, 
			TimeValue mediaTime,
			TimeValue mediaDuration, Fixed mediaRate);
pascal OSErr DeleteTrackSegment
			(Track theTrack, TimeValue in, 
			TimeValue duration); 
pascal OSErr ScaleTrackSegment
			(Track theTrack, TimeValue in, 
			TimeValue oldDuration, TimeValue newDuration);
pascal OSErr CopyTrackSettings
			(Track srcTrack, Track dstTrack);
pascal Fixed GetTrackEditRate
			(Track theTrack, TimeValue atTime);

Undo for Tracks

pascal TrackEditState NewTrackEditState
			(Track theTrack);
pascal OSErr UseTrackEditState
			(Track theTrack, TrackEditState state); 
pascal OSErr DisposeTrackEditState
			(TrackEditState state); 

Adding Samples to Media Structures

pascal OSErr BeginMediaEdits
			(Media theMedia); 
pascal OSErr EndMediaEdits	(Media theMedia); 
pascal OSErr AddMediaSample	(Media theMedia, Handle dataIn, long inOffset, 
			unsigned long size, 
			TimeValue durationPerSample, 
			SampleDescriptionHandle sampleDescriptionH, 
			long numberOfSamples, short sampleFlags, 
			TimeValue *sampleTime); 
pascal OSErr AddMediaSampleReference
			(Media theMedia, long dataOffset, 
			unsigned long size, 
			TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime);
pascal OSErr GetMediaSample
			(Media theMedia, Handle dataOut, 
			long maxSizeToGrow, long *size, TimeValue time, 
			TimeValue *sampleTime, 
			TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, 
			long maxNumberOfSamples, 
			long *numberOfSamples, short *sampleFlags); 
pascal OSErr GetMediaSampleReference
			(Media theMedia, long *dataOffset, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, 
			long maxNumberOfSamples, 
			long *numberOfSamples, short *sampleFlags);

Media Functions

Selecting Media Handlers

pascal void GetMediaHandlerDescription
			(Media theMedia, OSType *mediaType, 
			Str255 creatorName, 
			OSType *creatorManufacturer);
pascal MediaHandler GetMediaHandler
			(Media theMedia); 
pascal OSErr SetMediaHandler
			(Media theMedia, MediaHandlerComponent mH); 
pascal void GetMediaDataHandlerDescription
			(Media theMedia, short index, OSType *dhType, 
			Str255 creatorName, 
			OSType *creatorManufacturer);
pascal DataHandler GetMediaDataHandler
			(Media theMedia, short index); 
pascal OSErr SetMediaDataHandler
			(Media theMedia, short index, 
			DataHandlerComponent dataHandler);

Video Media Handler Functions

pascal HandlerError SetVideoMediaGraphicsMode
			(MediaHandler mh, long graphicsMode, 
			const RGBColor *opColor);
pascal HandlerError GetVideoMediaGraphicsMode
			(MediaHandler mh, long *graphicsMode, 
			RGBColor *opColor);

Sound Media Handler Functions

pascal HandlerError SetSoundMediaBalance
			(MediaHandler mh, short balance);
pascal HandlerError GetSoundMediaBalance
			(MediaHandler mh, short *balance);

Text Media Handler Functions

pascal ComponentResult AddTextSample
			(MediaHandler mh, Ptr text,
			unsigned long size, short fontNum, 
			short fontSize, Style textFace,
			RGBColor *textColor,
			RGBColor *backColor, 
			short textJustification,
			Rect *textBox, long displayFlags, 
			TimeValue scrollDelay,
			short hiliteStart, short hiliteEnd,
			RGBColor rgbHiliteColor,
			TimeValue duration,TimeValue *sampleTime);
pascal ComponentResult AddTESample
			(MediaHandler mh, TEHandle hTE, 
			RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, 
			TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor rgbHiliteColor,
			TimeValue duration, 
			TimeValue *sampleTime);
pascal ComponentResult AddHiliteSample
			(MediaHandler mh, short hiliteStart, 
			short hiliteEnd, 
			RGBColor *rgbHiliteColor, TimeValue duration, 
			TimeValue *sampleTime);
pascal ComponentResult FindNextText
			(MediaHandler mh, Ptr Text, long size, 												
			short findFlags,TimeValue startTime,												
			TimeValue *foundTime, TimeValue *foundDuration,
			long *offset);
pascal ComponentResult HiliteTextSample
			(MediaHandler mh, TimeValue sampleTime,													
			short hiliteStart, short hiliteEnd, 
			RGBColor *rgbHiliteColor);
pascal ComponentResult SetTextProc
			(MediaHandler mh, TextMediaProcPtr TextProc, long refcon);

Functions for Creating File Previews

pascal OSErr MakeFilePreview
			(short resRefNum, 
			ProgressProcRecordPtr progress); 
pascal OSErr AddFilePreview
			(short resRefNum, OSType previewType, 
			Handle previewData); 

Functions for Displaying File Previews

pascal void SFGetFilePreview
			(Point where, ConstStr255Param prompt, FileFilterProcPtr fileFilter, short numTypes, SFTypeList typeList, DlgHookProcPtr dlgHook, SFReply *reply);
pascal void SFPGetFilePreview
			(Point where, ConstStr255Param prompt, FileFilterProcPtr fileFilter, short numTypes, SFTypeList typeList, DlgHookProcPtr dlgHook, SFReply *reply, short dlgID, ModalFilterProcPtr filterProc); 
pascal void StandardGetFilePreview
			(FileFilterProcPtr fileFilter, short numTypes, SFTypeList typeList, StandardFileReply *reply); 
pascal void CustomGetFilePreview
			(FileFilterYDProcPtr fileFilter, 
			short numTypes, SFTypeList typeList, StandardFileReply *reply, short dlgID, 
			Point where, DlgHookYDProcPtr dlgHook, ModalFilterYDProcPtr filterProc, 
			short *activeList, 
			ActivateYDProcPtr activateProc, 
			void *yourDataPtr); 

Time Base Functions

Creating and Disposing of Time Bases

pascal TimeBase NewTimeBase
			(void);
pascal void DisposeTimeBase
			(TimeBase tb);
pascal void SetMovieMasterClock
			(Movie theMovie, Component clockMeister, 
			const TimeRecord *slaveZero);
pascal void SetMovieMasterTimeBase
			(Movie theMovie, TimeBase tb, 
			const TimeRecord *slaveZero);
pascal void SetTimeBaseMasterClock
			(TimeBase slave, Component clockMeister,
			const TimeRecord *slaveZero); 
pascal ComponentInstance GetTimeBaseMasterClock
			(TimeBase tb);
pascal void SetTimeBaseMasterTimeBase
			(TimeBase slave, TimeBase master,
			const TimeRecord *slaveZero); 
pascal TimeBase GetTimeBaseMasterTimeBase
			(TimeBase tb);
pascal void SetTimeBaseZero
			(TimeBase tb, TimeRecord *zero);

Working With Time Base Values

pascal void SetTimeBaseTime
			(TimeBase tb, const TimeRecord *tr); 
pascal void SetTimeBaseValue
			(TimeBase tb, TimeValue t, TimeScale s);
pascal TimeValue GetTimeBaseTime
			(TimeBase tb, TimeScale s, TimeRecord *tr);
pascal void SetTimeBaseRate
			(TimeBase tb, Fixed r);
pascal Fixed GetTimeBaseRate
			(TimeBase tb);
pascal Fixed GetTimeBaseEffectiveRate
			(TimeBase tb);
pascal void SetTimeBaseStartTime
			(TimeBase tb, const TimeRecord *tr);
pascal TimeValue GetTimeBaseStartTime
			(TimeBase tb, TimeScale s, TimeRecord *tr);
pascal void SetTimeBaseStopTime
			(TimeBase tb, const TimeRecord *tr);
pascal TimeValue GetTimeBaseStopTime
			(TimeBase tb, TimeScale s, TimeRecord *tr);
pascal void SetTimeBaseFlags
			(TimeBase tb, long timeBaseFlags);
pascal long GetTimeBaseFlags
			(TimeBase tb);
pascal long GetTimeBaseStatus
			(TimeBase tb, TimeRecord *unpinnedTime);

Working With Times

pascal void AddTime	(TimeRecord *dst, const TimeRecord *src); 
pascal void SubtractTime(TimeRecord *dst, const TimeRecord *src);
pascal void ConvertTime	(TimeRecord *inout, TimeBase newBase);
pascal void ConvertTimeScale
			(TimeRecord *inout, TimeScale newScale);

Time Base Callback Functions

pascal QTCallBack NewCallBack
			(TimeBase tb, short cbType);
pascal OSErr CallMeWhen	(QTCallBack cb, 
			QTCallBackProc callBackProc, long refcon, 
			long param1, long param2, long param3);
pascal void CancelCallBack	(QTCallBack cb);
pascal void DisposeCallBack
			(QTCallBack cb);
pascal TimeBase GetCallBackTimeBase
			(QTCallBack cb);
pascal short GetCallBackType
			(QTCallBack cb);

Matrix Functions

pascal void SetIdentityMatrix
			(MatrixRecord *matrix);
pascal short GetMatrixType	(MatrixRecordPtr m);
pascal void CopyMatrix	(MatrixRecordPtr m1, MatrixRecord *m2); 
pascal Boolean EqualMatrix	(const MatrixRecord *m1, 
			const MatrixRecord *m2);
pascal void TranslateMatrix
			(MatrixRecord *m, Fixed deltaH, Fixed deltaV);
pascal void ScaleMatrix	(MatrixRecord *m, Fixed scaleX, 
			Fixed scaleY, Fixed aboutX, Fixed aboutY);
pascal void RotateMatrix	(MatrixRecord *m, Fixed degrees, 
			Fixed aboutX, Fixed aboutY);
pascal void SkewMatrix	(MatrixRecord *m, Fixed skewX, Fixed skewY, 
			Fixed aboutX, Fixed aboutY);
pascal void ConcatMatrix	(MatrixRecord *a, MatrixRecord *b);
pascal Boolean InverseMatrix
			(MatrixRecord *m, MatrixRecord *im);
pascal OSErr TransformPoints
			(MatrixRecord *mp, Point *pt1, long count);
pascal OSErr TransformFixedPoints
			(MatrixRecord *m, FixedPoint *fpt, long count);
pascal Boolean TransformRect
			(MatrixRecord *m, Rect *r, FixedPoint *fpp);
pascal Boolean TransformFixedRect
			(MatrixRecord *m, FixedRect *fr, 
			FixedPoint *fpp);
pascal OSErr TransformRgn	(MatrixRecordPtr mp, RgnHandle r);
pascal void RectMatrix	(MatrixRecord *matrix, Rect *srcRect,
			Rect *dstRect); 
pascal void MapMatrix	(MatrixRecord *matrix, Rect *fromRect,
			Rect *toRect);

Application-Defined Functions

Progress Functions

pascal  OSErr MyProgressProc
			(Movie theMovie, short message, 
			short whatOperation, 
			Fixed percentDone, long refcon);

Cover Functions

pascal OSErr MyCoverProc(Movie theMovie, RgnHandle changedRgn, 
			long refcon);

Error-Notification Functions

pascal void MyErrProc	(OSErr theErr, long refcon);

Movie Callout Functions

pascal Boolean MyCallOutProc
			(long refcon);

File Filter Functions

pascal Boolean MyFileFilter
			(ParmBlkPtr parmBlock);

Custom Dialog Functions

pascal short MyDlgHook	(short item, DialogPtr theDialog, 
			Ptr myDataPtr);

Modal-Dialog Filter Functions

pascal Boolean MyModalFilter
			(DialogPtr theDialog, EventRecord *theEvent, short itemHit, Ptr myDataPtr);

Standard File Activation Functions

pascal void MyActivateProc	(DialogPtr theDialog, short itemNo, Boolean 
			activating, Ptr myDataPtr);

Callback Event Functions

pascal void MyCallBackProc	(QTCallBack cb, long refcon);

Text Functions

pascal OSErr MyTextProc (Handle theText, Movie theMovie, 
    			short *displayFlag, 
			long refcon);


Previous Book Contents Book Index Next

© Apple Computer, Inc.
6 JUL 1996